31 Januar 2023

JBake ist ein Generator statischer Webseiten. Dabei werden aus verschiedenen Quelldateien (Asciidoc, Markdown, HTML) statische HTML-Seiten auf dem lokalen Rechner erzeugt. Die fertigen Seiten werden dann per FTP z.B. auf gemieteten Webspace übertragen und von einem Webserver angezeigt.
Statische Webseiten sind lediglich eine Sammlung von Dateien und lassen sich mit minimalem Aufwand hosten. HTML- und CSS-Elemente werden direkt bei einer Veränderung des Codes gerendert und erst nach diesem "Prerendering" auf dem Webserver bereitgestellt. Dadurch wird die Performance des Webauftrittes erhöht, die Komplexität ist generell geringer und die statischen Seiten bieten keine Angriffspunkte, wie dies zum Beispiel bei einem CMS (z.B. Wordpress) der Fall ist.

1. JBake Quickstart

Die Dokumentation für JBake 2.6.7 enthält einen Quickstart Guide, in dem beschrieben ist, wie mit wenigen Befehlen ein neues JBake Projekt erzeugt werden kann. Die folgenden Konsolenbefehle reichen dafür aus:

$ mkdir project        (1)
$ cd project
$ jbake -i             (2)
($ ODER: jabake -i -t groovy mit Groovy-Templates)
$ jbake -b -s          (3)
1 Anlegen eines Projektverzeichnises und Wechsel in dieses Verzeichnis.
2 Initialisieren des Projektes (Defaulttemplatesprache ist freemarker, wenn Groovy-Templates verwendet werden sollen mit dem Zusatz -t groovy)
3 Fertigstellen der vorhandenen Seiten und Starten des internen Servers. Die Seiten können nun im Browser unter der Adresse http://localhost:8820 (oder einem anderen Port, wenn dies in der properties-Datei angegeben ist.) angezeigt werden. Der JBake Server läuft im Watch-Mode und aktualisiert die bearbeiteten Seiten selbständig.

2. JBake Projektverzeichnis

projektverzeichnis
|-- assets
|  |-- css
|  |-- fonts
|  |-- img
|  |-- js
|-- content
|  |-- blog
|  |   |-- 2022
|  |   |-- 2023
|  |-- image
|-- output
|-- templates
  • assets - Verzeichnis mit allen für das Projekt statischen Dateien in Unterverzeichnissen, z.B. Javascript-Dateien, CSS-Dateien, Images

  • content - Inhalt der Webseiten, d.h. einzelne Asciidoc, Markdown oder HTML-Dateien. Das Verzeichnis "blog" enthält die Artikel (Posts) der Webseite. Es kann zur besseren Verwaltbarkeit in weitere Unterverzeichnisse aufgeteilt sein. Je nach Umfang ist es denkbar, auf Ebene von "blog" auch ein Verzeichnis "pages" anzulegen, das einzelne Seiten und Unterseiten enthält, wenn es der Übersicht dient.

  • output - Gerenderte Dateien, die mittels FTP auf den Wepräsenz-Server übertragen werden können.

  • templates - JBake Vorlagen-Dateien, aus denen JBake Seiten und Artikel erzeugt.

3. JBake Properties

Die Erstellung der Webseiten lässt sich mit der Datei "jbake.properties" beeinflussen. Auf die einzelnen Einträge kann in den Templates mit Platzhaltern zugrgriffen werden. Sie ist in der JBake Dokumentation zur Konfiguration beschrieben.

JBake enthält eine Default-Konfiguration (default.properties), die in der individuellen Konfiguration (jbake.properties) überschrieben werden können. Die Konfiguration kann Kommentare enthalten. Dafür wird die entsprechende Zeile mit einem "#"" auskommentiert.

Eintrag Beschreibung

site.host=https://eulon.de

Host der Webseiten

index.file=index.html
archive.file=archive.html
feed.file=feed.xml
sitemap.file=sitemap.xml

Default-Dateinamen

asset.folder=site/assets
content.folder=site/content
template.folder=site/templates

Namen der Projekt-Unterverzeichnisse (jeweils die Default-Werte)

render.feed=false
render.index=false
render.archive=false
render.feed=false
render.tags=false
render.sitemap=false

welche Content unabhängigen Seiten sollen angelegt werden?

template.index.file=index.gsp
template.archive.file=archive.gsp
template.tag.file=tags.gsp
template.sitemap.file=sitemap.gsp
template.post.file=post.gsp
template.page.file=page.gsp
template.feed.file=feed.gsp

Groovy-Vorlagendateien (jeweils die Default-Werte. Wird kein Groovy verwendet, können diese Einträge entfallen.)

4. JBake Templates

JBake verwendet je nach Initialisierung eines Projektes verschiedene Sprachen in den Templates, die zur Erstellung der eigentlichen Webseiten verwendet werden. Das sind Freemarker, Groovy, Thymeleaf oder Jade, die entsprechend in den Templates eingebettet sind.

Es sind Templates für verschiedene Seiten enthalten, die nicht direkt dem zu erstellenden Content zuzuordnen sind, z.B. index, archive, feed oder sitemap. Jede dieser Dateien kann beim rendern der Seiten übersprungen werden. Dazu werden sie in der Konfigurationsdatei deaktiviert (z.B. render.archive=false).
Weitere Templates werden zur Erzeugung von z.B. header, footer und menu verwendet. Diese sind in den Seiten-Templates inkludiert.
Weitere Konfigurationsmöglichkeiten sind in der JBake Dokumentation zur Konfiguration beschrieben.